<?php


//!a function
function tags_split($str)
/**
 * Разобрать строку тэгов на отдельные слова.
 *
 * tags_split('"fadf fdsfas", fsdaf'));
 *
 * @param mixed $str строка тегов.
 * @access public
 * @return void
 */
{ // разделяем по "," или ";" удаляем пробелы слева-справа, удаляем дубликаты.
	$res = array();
	if ($matches = preg_split("/[,;]+/", $str)) {
		for($i=0, $c=count($matches); $i<$c; $i++) {
			$v = trim($matches[$i]);
			// можно непустые тэги
			if ($v) $res[$v] = mb_strtolower($v);
		}
		$res = array_flip($res);
	}

	return array_values($res);
}


/* // CHANGE : 2008-02-19 : lucky
 * // новые требования.
 *
function tags_split($str)
{ // разделяем по " " или "," или ";" если не в двойных кавычках "".
	// в двойных кавычках -- что угодно.
	// удаляем пробелы слева-справа, и двойные кавычки.
	// удаляем дубликаты
	$res = array();
	//                   0        1                    2
	if (preg_match_all('/\s*(?:["]([^"]*)["])|(?:[,; ]*([^ ,;]+))/i', $str, $matches)) {
		for($i=0, $c=count($matches[0]); $i<$c; $i++) {
			$v = (empty($matches[1][$i]) ? $matches[2][$i] : $matches[1][$i]);
			$res[$v] = $i;
		}
		$res = array_flip($res);
	}
	return $res;
}
 */

